layui.define(['element', 'layer', 'rsa', 'api'], function (exports) {

    var $ = layui.$;
    var rsa = layui.rsa;
    var api = layui.api;
    $('.input-field').on('change', function () {
        var $this = $(this),
            value = $.trim($this.val()),
            $parent = $this.parent();

        if (value !== '' && !$parent.hasClass('field-focus')) {
            $parent.addClass('field-focus');
        } else {
            $parent.removeClass('field-focus');
        }
    })

    function login() {
        var username = $("#username").val();
        var password = $("#password").val();
        //1.    先使用layer，弹出load（提示加载中...）
        var windowId = layer.load();
        //2. 获取RSA公钥对密码进行加密
        api.post("/admin/getPublicKey").then(function (data) {
            //对密码进行rsa公钥加密
            password = rsa.encryptedString(rsa.getKeyPair(data.data.exponent, '', data.data.modulus), password);
            //3. 使用加密之后的密码进行登录
            api.post("/admin/login", {
                username: username,
                password: password
            }).then(function (data) {
                //3.    关闭load窗口
                layer.close(windowId);
                //4.    将服务器回复的结果进行显示
                layer.msg(data.msg);
                if (data.success) {
                    //跳转到主页
                    location.assign("index.html");
                }
            });
        });

    }

    $(".login-button").click(login);
    /**
     * 支持回车登录
     */
    $(".login-form").keydown(function (event) {
        if (event.defaultPrevented) {
            return;
        }
        if ((event.key !== undefined && event.key === "Enter")
            || (event.keyCode !== undefined && event.keyCode === 13)) {
            login();
            event.preventDefault();
        }

    })
    exports('login');
});